/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Reportes;
import net.sf.jasperreports.view.save.JRPdfSaveContributor.*;
import net.sf.jasperreports.view.JRViewer.*;
import net.sf.jasperreports.view.save.JRMultipleSheetsXlsSaveContributor.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JasperExportManager;

import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;


/**
 *
 * @author Diego
 */
public class IniciarReporte {
   

    public IniciarReporte() {
    }
    static Connection conn = null;
//

    public static Connection getConexion() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ferreteriabd", "diego", "diego");
          //  JOptionPane.showMessageDialog(null, "GENERANDO EL REPORTE");
        } catch (Exception ex) {
            System.out.println("No se pudo establecer la conexion: " + ex);
            conn = null;
        }
        return conn;
    }
    Calendar c = Calendar.getInstance();
    int hora = c.get(Calendar.HOUR_OF_DAY);
    int min = c.get(Calendar.MINUTE);
    int seg = c.get(Calendar.SECOND);
    String hms = "" + hora + ":" + min + ":" + seg;
    //para la fecha
    Date fecha = c.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy");

    public void ejecutarReporte(String id_cliente) {
        try {
            Map params = new HashMap();
            //parametroCodigo es el parÃ¡metro que definiste dentro de el reporte
            params.put("id_cliente", id_cliente);
           //System.out.println(params);               //C:\Users\Diego Cale\Documents\NetBeansProjects\SystemaFhersa\src\Reportes\Reporte.jasper
            JasperPrint print = JasperFillManager.fillReport("C:\\Users\\Diego Cale\\Documents\\NetBeansProjects\\SystemaFhersa\\src\\Reportes\\Reporte.jasper", params, getConexion());
         //   JOptionPane.showMessageDialog(null, null);
            JasperViewer viewer = new JasperViewer(print,false);
            //Para imprimir el reporte
           // JasperPrintManager imprimir= new JasperPrintManager();
         //  imprimir.printReport(print, true);
          // viewer.setAlwaysOnTop(true);
            viewer.setTitle("Reporte de Factura");
            viewer.setVisible(true);
           JasperExportManager.exportReportToPdfFile(print,"C:\\Users\\Diego\\Desktop\\Res\\" + sdf.format(fecha) + "  " + hora + min + seg + "factura.pdf");
             cerrar();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al generar reporte: " + ex);
            ex.printStackTrace();

        }
    }
    public void ejecutarReportePagoCredito(String id_cliente) {
        try {
            Map params = new HashMap();
            //parametroCodigo es el parÃ¡metro que definiste dentro de el reporte
            params.put("id_cliente", id_cliente);
           //System.out.println(params);
            JasperPrint print = JasperFillManager.fillReport("C:\\Users\\Diego\\Desktop\\NetBeansProjects\\ProyectoEmpresa\\src\\Reportes\\ReportePagoCredito.jasper", params, getConexion());
            JasperViewer viewer = new JasperViewer(print,false);
            //Para imprimir el reporte
           // JasperPrintManager imprimir= new JasperPrintManager();
         //  imprimir.printReport(print, true);
          // viewer.setAlwaysOnTop(true);
            viewer.setTitle("Reporte de Factura");
            viewer.setVisible(true);
           JasperExportManager.exportReportToPdfFile(print,"C:\\Users\\Diego\\Desktop\\Res\\" + sdf.format(fecha) + "  " + hora + min + seg + "PagoAbono.pdf");
             cerrar();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al generar reporte: " + ex);
            ex.printStackTrace();

        }
    }
    public void ejecutarReporteDiarioFecha(String fechadia) {
        try {
            Map params = new HashMap();
            //parametroCodigo es el parÃ¡metro que definiste dentro de el reporte
            params.put("fechadia",fechadia);
           //System.out.println(params);//ReporteDiario.jasper//E:\Documents\NetBeansProjects\SistemaEmpresa\src\Reportes\ReporteDiario.jasper
            JasperPrint print = JasperFillManager.fillReport("E:\\Documents\\NetBeansProjects\\SistemaEmpresa\\src\\Reportes\\ReporteDiario.jasper", params, getConexion());
            JasperViewer viewer = new JasperViewer(print,false);
            //Para imprimir el reporte
           // JasperPrintManager imprimir= new JasperPrintManager();
         //  imprimir.printReport(print, true);
          // viewer.setAlwaysOnTop(true);
            viewer.setTitle("Reporte Diario Factura");
            viewer.setVisible(true);
           JasperExportManager.exportReportToPdfFile(print,"C:\\Users\\Diego\\Desktop\\Res\\" + sdf.format(fecha) + "  " + hora + min + seg + "ReporteDiario.pdf");
             cerrar();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al generar reporte: " + ex);
            ex.printStackTrace();

        }
    }
     public void ejecutarReporteMensual(String ParamBusqueda) {
        try {
            Map params = new HashMap();
            //parametroCodigo es el parÃ¡metro que definiste dentro de el reporte
           params.put("paramBusqueda",ParamBusqueda);
           //System.out.println(params);//ReporteDiario.jasper//C:\Users\Diego\Desktop\NetBeansProjects\ProyectoEmpresa\src\Reportes\ReporteMensual.jasper
            JasperPrint print = JasperFillManager.fillReport("C:\\Users\\Diego\\Desktop\\NetBeansProjects\\ProyectoEmpresa\\src\\Reportes\\ReporteMensual.jasper", params, getConexion());
            JasperViewer viewer = new JasperViewer(print,false);
            //Para imprimir el reporte
           // JasperPrintManager imprimir= new JasperPrintManager();
         //  imprimir.printReport(print, true);
          // viewer.setAlwaysOnTop(true);
            viewer.setTitle("Reporte del Mes:");
            viewer.setVisible(true);
           JasperExportManager.exportReportToPdfFile(print,"C:\\Users\\Diego\\Desktop\\Res\\" + sdf.format(fecha) + "  " + hora + min + seg + "ReporteDiario.pdf");
             cerrar();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al generar reporte: " + ex);
            ex.printStackTrace();

        }
    }
  public void ejecutarReporteAnual(String anio) {
        try {
            Map params = new HashMap();
            //parametroCodigo es el parÃ¡metro que definiste dentro de el reporte
           params.put("anio",anio);
           //Todos los archivos	C:\Users\Diego\Desktop\NetBeansProjects\ProyectoEmpresa\src\Reportes\ReporteAnual.jasper
           JasperPrint print = JasperFillManager.fillReport("E:\\Documents\\NetBeansProjects\\SistemaEmpresas\\src\\Reportes\\ReporteAnual.jasper", params, getConexion());
            JasperViewer viewer = new JasperViewer(print,false);
            //Para imprimir el reporte
           // JasperPrintManager imprimir= new JasperPrintManager();
         //  imprimir.printReport(print, true);
          // viewer.setAlwaysOnTop(true);
            viewer.setTitle("Reporte del Mes:");
            viewer.setVisible(true);
           JasperExportManager.exportReportToPdfFile(print,"C:\\Users\\Diego\\Desktop\\Res\\" + sdf.format(fecha) + "  " + hora + min + seg + "ReporteDiario.pdf");
             cerrar();
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error al generar reporte: " + ex);
            ex.printStackTrace();

        }
    }
    public void cerrar() {
        try {
            conn.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {
        IniciarReporte op = new IniciarReporte();
       op.ejecutarReporteAnual("2011");
    }
}
